#ifndef __DXGIRENDERER__
#define __DXGIRENDERER__

#include <windows.h>
#include <d3d11.h>
#include "baserenderer.h"
#include "dxcommon.h"
#include "hook.h"

class D3D10Renderer;
class D3D11Renderer;

class DXGIRenderer
{
  static DXGIRenderer* instance;
  OverlayState const* state;
  D3D10Renderer* d3d10Renderer;
  D3D11Renderer* d3d11Renderer;
  HookData hPresent;
  static HRESULT __stdcall myPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags);
public:
  DXGIRenderer(HINSTANCE hInstance, HMODULE hD3D10, HMODULE hD3D11, OverlayState const* pState);
  ~DXGIRenderer();

  void onDestroy(HWND hWnd);
};

#endif // __DXGIRENDERER__
